home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
doors_2
/
shmpg324.zip
/
WHAT'S.NEW
< prev
Wrap
Text File
|
1992-09-02
|
19KB
|
449 lines
Tue 09-01-1992
Ver 3.24
* Added a new variable: *KEYWORD* which is replaced by the word SHAMpage
matched, regardless of whether it was a KEY WORD or an ALIAS. This is so
you can make reference to the exact word the user typed in your replies.
This variable comes in several flavors. If it is all upper case, like the
example above, the variable itself will be typed in all CAPS. *keyword*
will be replaced by the variable in all lower case letters, and *Keyword*
will have the First Letter Only Capitalized.
NOTE: this variable is obviously useless in OPENING LINES, EXITMSG and
NOMATCH replies, since no match was found. (So DON'T use it there!)
Here is an example:
;----------------------------------------------------------------------------
; KEY WORD #1
;----------------------------------------------------------------------------
AWESOME
*ALIAS* COOL
3
*Keyword*, huh? You have a great vocabulary.
You're pretty *keyword* yourself, dude!
I didn't know you could spell *KEYWORD*.
If the caller types "This is a cool board", SHAMpage replies:
"Cool, huh? You have a great vocabulary."
or
"You're pretty cool yourself, dude!"
or
"I didn't know you could spell COOL."
If he enters "Totally Awesome", SHAMpage replies:
"Awesome, huh? You have a great vocabulary."
or
"You're pretty awesome yourself, dude!"
or
"I didn't know you could spell AWESOME."
* Since the original release of the program, I had been deducting one (1)
minute from the user's time-left to allow for proper log off from the BBS
after SHAMpage terminates. Due to the availability of the new TIME=x
command line parameter, I discontinued this practice. Now it's completely
up to you to decide how much of his time-left you want to allow the caller
spend in the door. As far as SHAMpage is concerned, he can spend it ALL,
unless you tell it otherwise via the TIME=x switch.
* Updated MAINTAIN.EXE and the data files to make use of the new *KEYWORD*
variables.
Ver 3.23
* If the caller has less than five (5) minutes left, SHAMpage will no longer
pick up the page. It goes through the "Paging SysOp... 1... 2... 3..."
routine, then sends the hard-coded message:
[SysOp First Name] is not available at the moment.
Please leave a [C]omment or try again later.
It seemed rather silly to pick up the page only to kick the caller off
immediately. Now, when SHAMpage does pick up the page, the caller will have
at least five minutes to "chat".
* Changed how SHAMpage exits when the caller runs out of time. Instead of
being unceremoniously dumped with no warning, the caller receives the
"Nice chatting with you" message and goodbye screen as if the door had
terminated in any of the other normal ways, such as the caller entering
"Bye". If the caller does not press a key within three (3) minutes while
SHAMpage is expecting remote input, however, the door still exits directly
back to the BBS, bypassing the goodbye message and screen. If the caller
hasn't hit a key in three minutes, presumably he fell asleep!
Ver 3.22
* Fixed illegal function call if the caller had a one-word name or handle.
Also made it possible for the SysOp to use a one-word name or handle (leave
line 2 or 3 blank in the config file).
* Added a new (optional) command line parameter to limit the caller to only a
certain percentage of his time-left in the door. I found that many of my
callers were spending their entire time in the door and were immediately
logged off upon their return to the BBS, leaving them no time to enter a
[C]omment to SysOp. The new parameter is "TIME=x", where x represents the
percentage of the caller's time-left you want him to be in chat. An example
command line:
SHAMpage SHAMpage.Cfg TIME=80
Using this example, if the caller has twenty minutes left when he pages,
SHAMpage will chat with him for sixteen minutes (80% of 20) before sending
him back to the board with four minutes online time remaining. If you
choose, you can even INCREASE his time in the door by making x larger than
100 (although, be warned... he will be dumped by the BBS upon his return to
the board!)
While tinkering with the time routines, I modified some to make them more
reliable.
* Added Jeff Sumberg's QBSERIAL copyright credit to the opening screen.
Ver 3.21
* Added the second-most requested feature: the ability to send multi-line
responses. This is accomplished with a new variable: *LF* (line-feed). If
*LF* occurs within a response in the data file, the line will be split at
that point, a line-feed will be sent and the rest of the response will be
typed on the next line. The entire response must occupy ONLY one line in
your data file however, and the length of the line is limited to 255 total
characters. Multiple *LF*'s on a single line are supported. Here is a line
which is 88 characters long (notice the lack of carriage return within the
line itself) from the sample SHAMPAGE.DAT:
My head hurts, my feet stink, and I don't love Jesus, *USER*. *LF* How's your day going?
This response will be typed as the following two separate lines:
My head hurts, my feet stink, and I don't love Jesus, Joe.
How's your day going?
To see another example, fire up SHAMpage and type shampage a few times!
* Added another variable: *ALIAS*. This allows you to use the exact same set
of responses with several different key words. The format is as follows:
In your data file, on the next line(s) after the key word, you may have up
to five (5) *ALIAS* key words. These are alternative key words to which
SHAMpage will make a positive match and send one of the replies to the
related key word. There are many advantages to this. If you utilize the
*ALIAS*'s, SHAMpage will match more key words (up to 600, instead of the
original 100 limit), the data file can be smaller and SHAMpage will not
repeat itself as often since you do not need separate entries for different
key words which are synonymous anyway. Here is a clip from the sample
SHAMPAGE.DAT:
;----------------------------------------------------------------------------
; KEY WORD #1
;----------------------------------------------------------------------------
FUNNY
*ALIAS* HA HA
*ALIAS* HAHA
*ALIAS* JOKE
*ALIAS* LAFF
*ALIAS* LAUGH
5
Funny stuff, huh?
So you think that's funny, huh? You're warped!
Sometimes I kill myself!
What a sense of humor...
You think that's funny? Try looking in the mirror, *USER*!
;----------------------------------------------------------------------------
If the caller enters a string matching "HA HA", "HAHA", "JOKE", "LAFF" or
"LAUGH" it will be treated exactly the same as if he entered "FUNNY".
Note the format: *ALIAS*'s come between the key word and the number of
responses.
* Modified file access to make SHAMpage multi-node aware. Here are examples
of the way I have the various files set up for two nodes on DrawBridge:
MAIN1.BAT
@Echo Off
Echo * Paged sysop (SHAMpage) >> C:\Wc30\Activity.00%Wcnodeid%
Cd \Doors\Shampage
Shampage Shampage.%Wcnodeid%
SHAMPAGE.1 (renamed from SHAMPAGE.CFG)
DrawBridge BBS
RICH
WAUGH
C:\Wc30\Wcwork\Node1\Door.Sys
SPLIT
SHAMpage.Dat
SHAMpage.001
1
3
23:00
08:00
SHAMPAGE.2 (renamed from SHAMPAGE.CFG)
DrawBridge BBS
RICH
WAUGH
C:\Wc30\Wcwork\Node2\Door.Sys
SPLIT
SHAMpage.Dat
SHAMpage.002
1
3
23:00
08:00
* Revised MAINTAIN.EXE to handle the new *ALIAS* variable correctly. It now
auto-detects if it's working on an old format data file or one which has
already been converted. One less decision for all you harried SysOps. More
kinds of errors are now detected and last, but not least, it is so much
prettier! <grin>.
Ver 3.20:
* Added the feature that's been requested most often - the ability to send
the contents of a text file upon a positive key word match. This is
implemented using a new variable in the data file as follows: if the left-
most string in a key word reply is *FILE* (as always, upper case with the
asterisks), SHAMpage will open a file matching the name on the remainder of
that line and "type" its contents to the caller. If this is unclear, look
at the sample SHAMPAGE.DAT, under the key word REGIST. You will see the
something similar to the following:
;----------------------------------------------------------------------------
; KEY WORD #1
;----------------------------------------------------------------------------
REGIST
1
*FILE* Sendit.Asc
;----------------------------------------------------------------------------
In this case, when SHAMpage finds the string REGIST it looks at the key
word reply and sees *FILE*. That tells it to send the caller the contents
of a file. Next, it reads the remainder of the line for the name of the
file to access, which in this case is SENDIT.ASC. That file is opened, read
and closed. Its entire contents are then typed, line by line, to the
caller. If the file does not exist, SHAMpage will error out (and log the
reason for the error in SHAMPAGE.ERR). There is no limit, other than the
normal limit of ten (10) replies per key word, to the number of different
*FILE*'s you can use. You should be aware that, in split-screen mode, if
*FILE* is over nine (9) lines in length, the first line(s) will be
overwritten by the last one(s) after the lines wrap at the end of the SysOp
screen. In full-screen mode, *FILE* can be up to twenty-one (21) lines
before the first line(s) scroll off the screen.
* Added the option to use two different data files: one for normal day time
use, the other for late night hours (as defined by the times you have the
page bell turned on or off). If SHAMpage finds a file named MIDNITE.DAT
(which should reside in your SHAMpage directory), it will be used instead
of the regular data file whenever the page bell is turned off. If SHAMpage
cannot find MIDNITE.DAT, your regular data file will be used. Whichever
data file is used is noted in SHAMPAGE.LOG.
* The typing routines in Split-Chat mode have been completely redone, to
better handle multiple-line entries. When the cursor line reaches the
split-screen limit the line wraps back up to the top of the current screen.
This prevents, among other things, the SysOp inadvertently overtyping the
▓▓▓▓▓▓▓▓▓▓▓SysOp Name▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓User Name▓▓▓▓▓▓▓▓▓▓▓
line and keeps the cursor always in the correct screen. Whenever the cursor
reaches column 80, a line-feed is sent and the next two lines are cleared.
Restored the cursor position correctly when going to and from live chat and
nuked an extraneous input required of the caller after returning from live
chat. The [F7] and [F8] keys now operate seamlessly.
* Changed the DOS prompt when dropped to DOS to remind you that you are in a
shell.
* Memory requirements have been slightly decreased.
* Bug Fixes: Repaired the "Error 5: Illegal function call" which sneaked into
some intermediate versions between v3.14 and v3.15. When multiple *USER*
and/or *TIME* variables appeared on the same line, only one was translated
properly. All occurrences of these variables are now converted. Cleaned up
a minor screen scroll problem on the goodbye screen. Moved the cursor to
the end of the "Press [ENTER]... " prompt and turned the cursor "on" on the
local screen. The proper lines were not always erased prior to the key word
responses being typed. This has been corrected.
Ver 3.13:
* The local screen is now saved, and restored after the SysOp drops to DOS or
views User's Stats.
* Made [F7] "Live Chat On" and [F8] "End Live Chat" keys hot from anywhere
AFTER the opening greeting and PRIOR to end of chat. Enabled those keys in
local mode. All functions, with the obvious exception of the comm routines,
are now fully enabled in local mode.
* Typo's now appear anywhere in the line. Varied the amount of time it takes
the "SysOp" to recognize a typo and correct it.
* Appended "am" or "pm" to the translation of the *TIME* variable.
* Added new information to SysOp's line 24: caller's location and (if using
DOOR.SYS) his age.
* "SysOp has control...", etc. is no longer printed on the local screen each
time it's the Sysop's turn to type while in full-screen chat mode. Toggled
"[F7] Live Chat On" with "[F8] End Live Chat" on line 25. New command line
parameters force full-screen or split-screen chat mode. The new parameters
are FULL and SPLIT. The syntax is: SHAMpage SHAMpage.Cfg FULL/SPLIT.
* Error messages were made much more specific; if an error occurs, please
read SHAMPAGE.ERR. The answer to your problem is probably logged. If you
have trouble deciphering the problem by yourself, feel free to send me your
SHAMPAGE.CFG, SHAMPAGE.DAT and SHAMPAGE.ERR files. I'll try to replicate
the error and see if I can help. This still does NOT entitle you to bitch,
though! <grin>
Ver 3.10:
* SHAMpage now checks the caller's time-left and updates the SysOp screen
more often. The time-left warnings to the caller have been discarded, since
they are rather meaningless in "chat" anyway and their main effect was to
alert the caller that he was in a door instead of live chat. The caller
will still get booted out of the door when he runs out of time. While
rewriting this routine, I noticed and fixed a misplaced input-timer
routine. The door now terminates as it should after 3 minutes of input
inactivity.
* Added a new variable to be checked in the data file. The variable name is
*TIME* (upper-case, with the asterisks). If this string occurs anywhere
within the line, the current time, in 12-hour format, will be substituted
in that position.
* Added a new option to run SHAMpage locally, from the command line. The
syntax is: SHAMpage SHAMpage.CFG LOCAL
* Key word search & match routine modified to work faster and more reliably.
* Typo & correction routine redone. Typo's now vary more in length and
SHAMpage will no longer make a typo of a non-letter. Corrections no longer
make typos themselves.
* Wrote a new routine to restore the proper screen colors after use of one of
the SysOp hot keys. Made some minor color changes to lines 24 & 25. Also
changed "Press [ENTER] to continue" prompt to "Press [ENTER] to return to
BBSname".
* Fixed some errors in the disabling of IRQ masks on the Interrupt Controller
when exiting SHAMpage. This could cause certain BBS's which don't reset the
port when returning from a door to appear to "lock up" when they regained
control.
* Cleaned up, optimized and reduced the size of the code. SHAMpage is now
nearly 20% smaller and loads and executes much faster than ever before.
Ver 3.05:
* Made the "exit" message configurable. If SHAMPAGE.DAT contains the Key Word
EXITMSG, its "keyword responses" (up to four lines) will all be sent, in
order, upon door termination. If EXITMSG does not appear as a key word, the
default hard-coded exit message will be used.
* SHAMpage now checks for a variable in the data file so you can personalize
your responses a bit more. You will find that the more personal your
responses, using such things as your real name, the caller's name and your
board's name, the more believable the program becomes. The variable name is
*USER* (upper-case, with the asterisks). If this string occurs anywhere
within the line, the caller's first name will be substituted in that
position. This affects the format of the opening lines, where the caller's
name had previously been inserted automatically and necessitates changes to
your SHAMPAGE.DAT file. Please see the enclosed SHAMPAGE.DAT for examples.
* ┌───────────────────────────────────────────────────────────────────────┐
* │ MAINTAIN.EXE HAS BEEN UPDATED TO CONVERT THE OLD SHAMPAGE.DAT TO THE │
* │ LATEST FORMAT, WHICH SUPPORTS THE CHANGES NOTED ABOVE. BE SURE TO RUN │
* │ IT IF YOU INTEND TO USE YOUR OLD CUSTOMIZED DATA FILE. │
* └───────────────────────────────────────────────────────────────────────┘
* Added support for DORINFOx.DEF drop file (refer to line 4 in SHAMPAGE.CFG).
Due to the limited amount of information included in DORINFOx.DEF, the
[F2] User's Stats function is not quite as informative in this mode.
SHAMpage is now running on WildCat!, PCBoard, Remote Access, QuickBBS and
Virtual BBS boards that I am aware of. Support for CALLINFO.BBS and/or
other BBS drop files can be implemented if there is sufficient interest.
Ver 3.02:
* Added some new means for the caller to exit SHAMpage: by entering G, Q, X
or two consecutive empty lines.
* Reworked some I/O routines. The transmit buffer now works much better.
* Minor color change to match WildCat!'s chat.
* Initial release of MAINTAIN utility for maintaining SHAMPAGE.DAT
Ver 3.0:
* The Com routines have been completely rewritten to get around the poor
communications support provided by QuickBASIC. SHAMpage now uses Jeff
Sumberg's wonderful QBSERIAL library to handle all com routines. We now
have the ability to control COM1 - COM4 at speeds up to 115,200 baud. The
serial driver includes XON/XOFF and CTS/RTS handshaking. Serial input is
interrupt driven, with incoming XOFF flow control (if enabled) and/or RTS
flow control (if enabled) to prevent overrunning the input buffer.
Ver 2.1:
* Added two (optional) lines to SHAMPAGE.CFG to allow enabling/disabling the
page bell by the hour.
* Changed the page bell to more closely mimic WildCat!'s page bell.
* Changed the [F2] User Stats to be transparent to the caller.
Ver 2.0:
* Randomized key word responses so they come up in a different order each
time the door is run. Previously, they always appeared in last-to-first
order.
* Made new option for WildCat! split-screen chat emulation.
* Modified opening "Paging SysOp... " to mimic WildCat!'s
* Modified SysOp's lines 24 & 25 to show other options (which were in
previous releases - but nobody knew about them).
* Rewrote documentation.
* Changed colors to match WildCat!'s
* Changed some other colors for cosmetic reasons.
Ver 1.1:
* Added "Delay Factor" to make the typing rate realistic on any machine.
Ver 1.0:
* First version released to the public.